package com.zhengf.rdf.service;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.zhengf.rdf.entity.User;
import org.springframework.stereotype.Service;

import java.util.Calendar;
import java.util.Date;


/**
 * @author zhengf
 */
@Service("TokenService")
public class TokenService {
    public String getToken(User user) {
        // 签发时间
        Date iatDate = new Date();

        // 过期时间 1分钟
        Calendar nowTime = Calendar.getInstance();
        nowTime.add(Calendar.MINUTE,600);
        Date expiresDate = nowTime.getTime();

        String token = JWT.create().withAudience(user.getUserName())// 将 user id 保存到 token 里面
                .withExpiresAt(expiresDate) // 设置过期时间 过期时间大于签发时间
                .withIssuedAt(iatDate)// 设置签发时间
                .sign(Algorithm.HMAC256(user.getPassword()));// 以 password 作为 token 的密钥
//        return JWTUtils.encrypt(token);
        return token;
    }
}
